﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.Data.SqlClient;
using System.Linq;

namespace QL_NOI_TRU
{
    public partial class frmImportExcell : DevExpress.XtraEditors.XtraForm
    {
        public frmImportExcell()
        {
            InitializeComponent();
            btnBrowse.Click += new EventHandler(btnBrowse_Click);
            btnImportExcel.Click += new EventHandler(btnImportExcel_Click);
        }

        private void frmImportExcell_Load(object sender, EventArgs e)
        {

        }
        void btnBrowse_Click(object sender, EventArgs e)
        {
            // Browse đến file cần import
            OpenFileDialog ofd = new OpenFileDialog();
            // Lấy đường dẫn file import vừa chọn
            txtFilePath.Text = ofd.ShowDialog() == DialogResult.OK ? ofd.FileName : "";
        }

        void btnImportExcel_Click(object sender, EventArgs e)
        {
            if (!ValidInput())
                return;

            // Đọc dữ liệu từ tập tin excel trả về DataTable
            DataTable data = ReadDataFromExcelFile();

            // Import dữ liệu đọc được vào database
            ImportIntoDatabase(data);

            // Lấy hết dữ liệu import từ database hiển thị lên gridView
            ShowData();
        }
        private bool ValidInput()
        {
            if (txtFilePath.Text.Trim() == "")
            {
                MessageBox.Show("Xin vui lòng chọn tập tin excel cần import");
                return false;
            }
            return true;
        }

        private DataTable ReadDataFromExcelFile()
        {
            // Tạo đối tượng kết nối
            SqlConnection conn = new SqlConnection(frmDangnhap.stringConn);
         //   OleDbConnection oledbConn = new OleDbConnection(connectionString);
            DataTable data = null;
            try
            {
                // Mở kết nối
               conn.Open();

                // Tạo đối tượng OleDBCommand và query data từ sheet có tên "Sheet1"
               SqlCommand cmd = new SqlCommand("select * from[Sheet1$]", conn);
              //  OleDbCommand cmd = new OleDbCommand("SELECT * FROM [Sheet1$]", oledbConn);

                // Tạo đối tượng OleDbDataAdapter để thực thi việc query lấy dữ liệu từ tập tin excel
               SqlDataAdapter dr = new SqlDataAdapter();
              //  OleDbDataAdapter oleda = new OleDbDataAdapter();

                dr.SelectCommand = cmd;

                // Tạo đối tượng DataSet để hứng dữ liệu từ tập tin excel
                DataSet ds = new DataSet();

                // Đổ đữ liệu từ tập excel vào DataSet
               dr.Fill(ds);

                data = ds.Tables[0];
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                // Đóng chuỗi kết nối
                conn.Close();
            }
            return data;
        }

        private void ImportIntoDatabase(DataTable data)
        {
            if (data == null || data.Rows.Count == 0)
            {
                MessageBox.Show("Không có dữ liệu để import");
                return;
            }
            
         //   HumanResourceTableAdapters.EmployeeInfoTableAdapter adapter = new HumanResourceTableAdapters.EmployeeInfoTableAdapter();
           
            string MA_KHOA = "", TEN_KHOA = "";
            try
            {
                for (int i = 0; i < data.Rows.Count; i++)
                {
                    MA_KHOA = data.Rows[i]["MA_KHOA"].ToString().Trim();
                    TEN_KHOA = data.Rows[i]["TEN_KHOA"].ToString().Trim();

                    string strr = "EXEC Insert_KHOA @MA_KHOA = '" + MA_KHOA + "', @TEN_KHOA = '" + TEN_KHOA + "'";
                    var kn = new Ketnoi(frmDangnhap.stringConn);
                    kn.ExcuteQuery(strr);
                    /*
                 //   HumanResource.EmployeeInfoDataTable existingEmployee = adapter.GetEmployeeInfoByCode(code);
                    // Nếu nhân viên chưa tồn tại trong DB thì thêm mới
                    if (existingEmployee == null || existingEmployee.Rows.Count == 0)
                    {
                        adapter.InsertEmployee(MA_KHOA, TEN_KHOA);
                    }
                    // Ngược lại, nhân viên đã tồn tại trong DB thì update
                    else
                    {
                        adapter.UpdateEmployeeInfoByCode(TEN_KHOA, MA_KHOA);
                    }
                     */
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            MessageBox.Show("Kết thúc import");
        }

        private void ShowData()
        {
          //  HumanResourceTableAdapters.EmployeeInfoTableAdapter adapter = new HumanResourceTableAdapters.EmployeeInfoTableAdapter();
            string a = "select * from KHOA";
            var kn = new Ketnoi(frmDangnhap.stringConn);
            gridControl1.DataSource = kn.ExcuteQuery(a);
        }
    }
}